<?=$this->headTitle("Каталог статей");?>
<?= $this -> headScript() -> setAllowArbitraryAttributes(true);?>
    <?= $this->headScript()
        ->appendFile('js/tinymce/jscripts/tiny_mce/tiny_mce.js','text/javascript',array('defer'))
    ?>
   <?= $this->JQuery()
                    ->addJavaScriptFile($this->baseUrl('js/jquery/jgrid/js/jquery.jqGrid.min.js'))
					->addJavaScriptFile($this->baseUrl('js/jquery/jgrid/src/i18n/grid.locale-ru.js'))
                    ->addJavascriptFile($this->baseUrl('/js/jquery/js/jquery.comments.js'))
                    ->addJavaScriptFile($this->baseUrl('js/wysibb/jquery.wysibb.min.js'))
                    ->addJavaScriptFile($this->baseUrl('/js/jquery/js/i18n/jquery.ui.datepicker-ru.js'))
                    ->addJavaScriptFile($this->baseUrl('/js/jquery/js/jquery-ui-timepicker-addon.js'))
                    ->addJavaScriptFile($this->baseUrl('/js/jquery/js/jquery.ui.progressbar.js'))
                    ->addJavaScriptFile($this->baseUrl('js/ajaxupload/ajaxfileupload.js'))
                   // ->addJavaScriptFile($this->baseUrl('js/tinymce/jscripts/tiny_mce/tiny_mce.js'))
					->addStyleSheet($this->baseUrl('js/jquery/jgrid/css/ui.jqgrid.css'))
					->addStylesheet($this->baseUrl('/css/jquery-ui-timepicker-addon.css'))
                    ->addStylesheet($this->baseUrl('/js/wysibb/theme/default/wbbtheme.css'))
					;?>

<script type="text/javascript">
jQuery(document).ready(function(){
var w,h;
    w = $(window).width();
    h = $(window).height();

    switch(w){
        case 1920:
            w = 1400;h = 600;break;
        default:
            w = 1000;h = 500;
    }
	$('#table').jqGrid({
		width:w,
		height:h,
	  datatype: 'json',
		url:'/admin/index',
		mtype: 'POST',
	          colNames:['ID','Картинка','Название статьи','Категория','Автор','Страница','Дата создания','Видим','Коментарии','Статья'],
	          colModel :[
	            {name:'id', index:'id', width:30,align:'center'},

                {name: 'fileToUpload', index:'Картинка', height:25,width:40,align:'center',editable:true,edittype:'file',formatter:getPicture,sortable:false,search:false,hidden:false,
                editrules:{edithidden:true},editoptions:{enctype: "multipart/form-data",size:30}},

	        	{name:'title', index:'Название статьи', width:350,editable:true,edittype:'text',search:true, searchtype:"string",searchoptions:{sopt:['bw','cn']},
	        	sortable: true,editrules:{custom: true, custom_func: Check,required: true,size:200},editoptions:{placeholder:'Введите название статьи',size:75}},//formatter:'showlink',formatoptions:{baseLinkUrl:"/catalog/item/display/"}},

				{name:'category_name', index:'Категория', width:60,editable:true,align:'center',edittype:"select",search:false,editoptions:{dataUrl:'/admin/getcategories'}},

	            {name:'author', index:'Автор', width:150,editable:true,edittype:'text',align:'left',searchoptions:{sopt:['bw','cn']},
	            editrules:{custom: true,size:60, custom_func: Check,required: true },editoptions:{placeholder:'автор статьи',size:75}},

				{name:'page', index:'Страница', width:60,editable:true,align:'center',edittype:"select",editoptions:{dataUrl:'/admin/getpages'},search:false,
                editrules:{custom: true, custom_func: Check,required: true }},

                {name:'created_dt', index:'Дата создания', width:100,editable:true,align:'center',search:false,formatter:'date',formatoptions:{dayNames: [ "Вс","Пн","Вт","Ср","Чт","Пт","Сб",
                      "Воскресенье", "Вторник", "Среда","Четверг", "Пятница", "Суббота","Понедельник"],
                       monthNames: [ "Янв","Фев","Мар","Апр","Май","Июн","Июл","Авг","Сен","Окт","Ноя","Дек",
                                     "Янв","Фев","Мар","Апр","Май","Июн","Июл","Авг","Сен","Окт","Ноя","Дек"],
                      srcformat: 'Y-m-d H:i:s',newformat: 'm d Y H:i:s',reformatAfterEdit:false},
                      editoptions:{ size:20,required: true,
                          dataInit:function (dt){

                              var dtVal = parseInt($(dt).val());
                              var dT = new Date(dtVal);
                              var h = dT.getHours();
                              var min = dT.getMinutes();
                              var s = dT.getSeconds();
                              var Year = dT.getFullYear();
                              var month = dT.getUTCMonth();
                              var day = dT.getDay();

                              $(dt).datepicker({
                                  dateFormat:'mm dd yy'}).timepicker({
                                  showSecond:true,
                                  defaultDate:new Date(month+'-'+day+'-'+Year),

                                  hour:h,
                                  minute:min,
                                  second:s,
                                  timeFormat:'HH:mm:ss'});
                          }}},
	            {name:'visibility', index:'Видим', width:45,editable:true,align:'center',edittype:"select",editoptions: {custom:true,value:"yes:да; no:нет"},formatter:visible,sortable:false,search:false},

	            {name:'comments',index:'Комментарии:',width:50,formatter:comment,align:'center',hidden:false,editable:false},//

                {name:'article',index:'Статья',align:'center',editable:true,edittype:'textarea',editoptions:{rows:20,cols:80},hidden:true ,editrules:{custom: true, custom_func: checkTextarea,edithidden:true}}
	            ],

    caption: 'Каталог статей',
    pager: jQuery('#pager'),
    rowNum:30,
    rowList:[30,60,80],
    sortname: 'id',
    sortorder: "asc",
    viewrecords: true,
	emptyrecords: "Nothing to display",
	multiselect: true,
	editurl: "/admin/index",
	loadonce: true,
	rownumbers: true,
	jsonReader: { repeatitems : true},
	gridview : true,
    loadError:function(){
        message('Предупреждение','Статьи не обнаружены');
        addEmptyRows(5);
    },
	loadComplete:function(data){
                if(data.page >=1){
                var trCount = $('#table').find('tbody').find('tr').length;
                addEmptyRows(trCount);
                $('td[aria-describedby=table_title]').css({cursor:'pointer'}).hover(function(){$(this).css('color','#0000FF');});
                $('td[aria-describedby=table_title]').mouseleave(function(){$(this).css('color','#000000')});
           }
	    }
	});
jQuery("#table").jqGrid('navGrid','#pager',{edit:true,edittext:'Edit',edittitle:'Редактировать статью',add:true,addtext:'New article',addtitle:'Новая статья',del:true,deltext:'Delete',deltitle:'Удалить статью',search:true,searchtext:'Search',searchtitle:'Искать',refresh:true,refreshtext:'Reload'},
      {width:800,closeAfterEdit:true,reloadAfterEdit:true,afterSubmit:afterEdit,onClose:removeContent,onclickSubmit:articleSend,beforeEditCell:visible,
          beforeShowForm:function(edform){
              edform.parent().parent().parent().css({position:'fixed',left:'450px',top:'50px'});;//Центрирование окна edit article
          },
          beforeInitData:function(){
              tinyLoad();
          },
          afterShowForm:function(){

          }
      }, // default settings for edit
      {width:800,
       height:(function(){
           if($(window).height() >= 800){
               return 700;
           }else{
               return 500;
           }
       })(),
      closeAfterAdd:true,
      reloadAfterSubmit:true,
      addCaption:'Новая статья',
      beforeShowForm:function(form){
          $('#tr_article').find('.CaptionTD').css({'vertical-align':'top','padding-top':'15px'});
          form.parent().parent().parent().css({position:'fixed',left:'350px',top:'50px'});//Центрирование окна new article
      },
      afterShowForm:function(){

      },
          beforeInitData:function(){
              tinyLoad();
          },
      onclickSubmit:articleSend,
      onClose:removeContent,
      afterSubmit:afterAdd
    //  afterShowForm:addInput,
      }, // default settings for add
      {top:250,left:700}, // delete instead that del:false we need this
      {closeOnEscape:true, multipleSearch:false,
       closeAfterSearch:true, multipleGroup:false,top:250,left:600}, // search options
      {}
	);

jQuery("#table").jqGrid('inlineNav',"#pager",{add:false,search:false,edit:false});

    $('#table').setGridParam({

        onSelectRow: function(rowid,bool,ev) {
            //console.log(ev);
            if($(ev.target).parent().attr('class') == 'commentcount'){
                var arttitle = $('#table tbody tr#'+rowid).find('td[aria-describedby=table_title]').text();
                getCoomments(rowid,arttitle);
            }else if($(ev.target).attr('aria-describedby') === 'table_title'){

                $('#edit_table').click();
            }
        }
    });

$('#alertmod').css({top:'300px',left:'700px'});
$("#deldata").click(function(){ 
var gr = jQuery("#table").jqGrid('getGridParam','selrow');
    if( gr != null ) jQuery("#table").jqGrid('delGridRow',gr,{reloadAfterSubmit:true});
	    else alert("Пожалуйста выделите запись для удаления!");
    });
});
	function viewsarticle(cellvalue, options, rowObject)
	{
		cellvalue = cellvalue.replace(/<\/?[^>]+>/gi, '');
		return "<a href='/catalog/item/display/" + options.rowId + "' >"+cellvalue+"</a>"; 
	}
	function article(cellvalue, options, rowObject)
	{
	 return cellvalue; 
	}

function editlink(cellvalue, options, rowObject)
	{
	 return "<a href='/admin/articles/update/" + options.rowId + "'title='Редактировать статью'><img src='images/edit.png'></a>";	 
	}

function visible(value, id, val, iRow, iCol)
	{
       var c = $(this).find('tbody').find('tr').next();
        var ico;

	    if(value=='yes'){
            return "<img src='images/apply.png'>";
        }
       else{
            return "<img src='images/cancel.png'>";
        }
	}

function comment(cellvalue,options,rowObject){
	if(cellvalue !=0){
	//return  "<span id='/admin/comments/index/" + options.rowId + "' class=commentcount>"+cellvalue+"</span>";
	return  "<span id='"+ options.rowId +"' class=commentcount ><strong title='Комментарии к статье' style='color:#005fff;text-decoration:underline;cursor: pointer'>"+cellvalue+"</strong></span>";
	}else
	{
		return cellvalue; 
	}
}
function Check(cellvalue)
{
   if(cellvalue.length<3){
   	return [false,"Ошибка ,слишком короткая строка. Минимальная длина строки 3 символа"];
}else{
	if(cellvalue.length>200)
	{
		return [false,'Максимальная длина строки 200 символов'];
	}else
		{
		var letterNumber = /[\_\-\>\<\=\"0-9a-zA-Zа-яА-Я]+/;  
 			if(cellvalue.match(letterNumber))   
  			{  
      			return [true,"ok"];
 			}  
			else  
				 {   
  				return [false,"Введены недопустимые символы."];  
  				}  
 		}  
 	}
}

function addEmptyRows(rowCount){
    var tr = '<tr class="ui-widget-content jqgrow ui-row-ltr"><td class="ui-state-default"></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>';
    for(var i=rowCount;i < 30;i++){
        $('#table').find('tbody').append(tr);
    }
}
function addTextarea(){
	
	if($('#tr_article').length >0){$('#tr_article').remove();}

	var txtarea = $('<textarea>',{rows:20,cols:80,id:'article',name:'article','class':'FormElement ui-widget-content ui-corner-all',type:"textarea",role:"textarea"});
	var tr = $('<tr>',{'id':'tr_article','class':'FormData','rowpos':'8'});
	var captionTD = $('<td>',{'class':'CaptionTD',text:'Статья',style:"vertical-align: top;"});
	var DataTD = $('<td>',{'class':'DataTD'}).append(txtarea);
	tr.append(captionTD).append(DataTD);
	$('#editmodtable').find('#tr_visibility').parent().append(tr);
}

function tinyLoad(){

        $.getScript('js/tinymce/jscripts/tiny_mce/script.js'),
        $('#tr_article').find('.CaptionTD').css({'vertical-align':'top','padding-top':'15px'});
}
function articleSend(){

    thumbUpload();
    var imgName =  $('#fileToUpload').val();
    $('#fileToUpload').val('');
	var value = tinyMCE.get('article').getContent();

	return {article:value,img:imgName}

}
function removeContent(){
	tinyMCE.get('article').remove();
	return true;
}
function reloadTable(){
        //jQuery('#table').jqGrid('clearGridData');
    $('#table').jqGrid('setGridParam', {datatype: 'json'});
    $('#table').trigger('reloadGrid');
	    //$(this).jqGrid('setGridParam', {datatype:'json'});
    return [true,'',false];
}
function afterEdit(){
    reloadTable();
    message('Обновление статьи','Статья обновлена');
    return [true,'',false];
}
function afterAdd(){
    reloadTable();
    message('Загрузка новой статьи','Новая статья добавлена');
    return [true,'',false];
}


function checkTextarea(){
    var cellvalue = tinyMCE.get('article').getContent();
    if(cellvalue.length < 500 ){
        return [false,"Статья должна содержать минимум 500 символов."];
    }
    else if(cellvalue.length > 5000000){
        return [false,"Слишком большая статья, максимальная длина статьи 5 000 0000 символов."];
    }
    return [true,"ok"];
}
function thumbUpload(){

    $('#editmodtable').hide()
    $(function() {
        $( "#progressbar" ).progressbar({
            value: true
        });
    });

   $("#progressbar").ajaxStart(function(){
       $(this).show();})
    .ajaxComplete(function(){
        $(this).hide();
   });

  $.ajaxFileUpload({
            url:'/admin/upload',
            secureuri:false,
            fileElementId:'fileToUpload',
            dataType: 'json',
            success: function (data,status){

                if(typeof(data.error) != 'undefined')
                {
                    if(data.error != '')
                    {
                        alert(data.error);
                    }else
                    {
                        alert(data.msg);
                    }
                }else{
                    //$('#fileToUpload').val(data);
                }
            },
            error: function (data, status, e)
            {
                alert(e);
            }
        });
    return $('body').data('img');
}
function getPicture(cellvalue){
    return "<a href='images/articles/"+cellvalue+"'><img src='images/articles/"+cellvalue+"' style='height:25px;'></a>";
}
function message(title,text){
   var ok = $('<div>',{ title:title,text:text,id:"loading",style:"text-align:center;padding-top:20px;"});
    $(ok).dialog({
        width:250,
        height:150,
        resizeable:false,
        position:[550,250],
        buttons:{
            "Новая статья":function(){
                $('#add_table').click();
                $(this).dialog("close");
            },
            "Закрыть":function(){
                $(this).dialog("close");
            }
        },
        open: function(){
            $(this).parent().find('.ui-dialog-buttonpane button:first-child').button({
                icons: { primary: 'ui-icon-circle-plus' }
            });
            $(this).parent().find('.ui-dialog-buttonpane button:first-child').next().button({
                icons: { primary: 'ui-icon-circle-close' }
            });
        }
    });
}
function getCoomments(rowid,arttitle){
            var opt = {artTitle:arttitle,'parentdiv':'#gbox_table','childdiv':'#main-articles','progressStyleTop':'300px',progressStyleLeft:'600px'};
            $('#table').data('artId',rowid).comments(opt);
}
function addThumb(edform){

    var artid = edform.find('table tbody tr:last').find('input').val();
    var imgSrc = $('#table tbody tr#'+artid).find('td[aria-describedby=table_fileToUpload]').find('a').attr('href');
    //return "<a href='images/articles/"+cellvalue+"'><img src='images/articles/"+cellvalue+"' style='height:25px;'></a>";
    var place = $('#editmodtable').find('#TblGrid_table').find('#tr_fileToUpload');
    if(place.parent().find('#tr_articleImage').length > 0){place.parent().find('#tr_articleImage').remove();}
    var  img = $('<img>',{src:imgSrc,style:'height:120px;'});
    var tr = $('<tr>',{id:'tr_articleImage','class':'FormData'});
    var DataTD = $('<td>',{'class':'DataTD'}).append(img);
    var CaptionTD = $('<td>',{'class':'CaptionTD',text:''});
    tr.empty().append(CaptionTD,DataTD);
    place.before(tr);
}
function editArticle(arttitle,row,ar){
    return "<span id="+row.rowId+" class=arttitle style=cursor:pointer;>"+arttitle+"</span>";

}
</script>
<div id="main-articles" style="float:left;">
<table id="table" ></table>
<div id="pager"></div>
    <div id="progressbar"></div>
</div>
</div>